package wrapper;
/**
 * 包装类的演示:定义、包装类与基本类型互转
 */
public class IntegerDemo1 {
    public static void main(String[] args) {
        //演示包装类的定义:
        Integer i1 = new Integer(5);
        Integer i2 = new Integer(5);
        System.out.println(i1==i2); //false，==比较的是地址
        System.out.println(i1.equals(i2)); //true，包装类重写equals()比较值了
        System.out.println("------------------------------");

        //valueOf()方法会复用1个字节(-128到127)范围内的数据，建议使用valueOf()
        Integer i3 = Integer.valueOf(5);
        Integer i4 = Integer.valueOf(5);
        System.out.println(i3==i4); //true
        System.out.println(i3.equals(i4)); //true，包装类重写equals()比较值了

        //演示基本类型与包装类型之间互转:
        Integer i = Integer.valueOf(5); //基本类型转换为包装类型
        int j = i.intValue(); //将包装类型转换为基本类型

        //触发了自动装箱特性，会被编译为: Integer m = Integer.valueOf(5);
        Integer m = 5; //基本类型到引用类型---------装
        //触发了自动拆箱特性，会被编译为: int n = m.intValue();
        int n = m; //引用类型到基本类型-------------拆

    }
}















